home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / xemacs / xemacs-1.006 / xemacs-1 / lib / xemacs-19.13 / lisp / games / mpuz.elc < prev    next >
Emacs Compiled Lisp  |  1995-08-29  |  9.0 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was processed as: Emacs Compiled Lisp (other/emacsCompiledLisp).
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
1% dexvert Emacs Compiled Lisp (other/emacsCompiledLisp) magic Unsupported
1% dexvert Combustion 2 Particle Library (other/combustion2ParticleLibrary) ext Unsupported
100% file Emacs/XEmacs v19 byte-compiled Lisp data default
99% file data default
55% TrID Emacs/XEmacs byte-compiled Lisp (generic) default
44% TrID Summation Document Image Information Load File default (weak)
100% xdgMime text/x-emacs-lisp default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 45 4c 43 13 00 00 00 | 0a 3b 3b 3b 20 63 6f 6d |;ELC....|.;;; com|
|00000010| 70 69 6c 65 64 20 62 79 | 20 63 74 68 6f 6d 70 40 |piled by| cthomp@|
|00000020| 77 69 6c 6c 6f 77 2e 63 | 73 2e 75 69 75 63 2e 65 |willow.c|s.uiuc.e|
|00000030| 64 75 20 6f 6e 20 54 75 | 65 20 41 75 67 20 32 39 |du on Tu|e Aug 29|
|00000040| 20 31 34 3a 30 32 3a 30 | 31 20 31 39 39 35 0a 3b | 14:02:0|1 1995.;|
|00000050| 3b 3b 20 66 72 6f 6d 20 | 66 69 6c 65 20 2f 78 65 |;; from |file /xe|
|00000060| 6d 61 63 73 2f 78 65 6d | 61 63 73 2d 31 39 2e 31 |macs/xem|acs-19.1|
|00000070| 33 2d 72 65 6c 65 61 73 | 65 2f 65 64 69 74 6f 72 |3-releas|e/editor|
|00000080| 2f 6c 69 73 70 2f 67 61 | 6d 65 73 2f 6d 70 75 7a |/lisp/ga|mes/mpuz|
|00000090| 2e 65 6c 0a 3b 3b 3b 20 | 65 6d 61 63 73 20 76 65 |.el.;;; |emacs ve|
|000000a0| 72 73 69 6f 6e 20 31 39 | 2e 31 33 20 58 45 6d 61 |rsion 19|.13 XEma|
|000000b0| 63 73 20 4c 75 63 69 64 | 2e 0a 3b 3b 3b 20 62 79 |cs Lucid|..;;; by|
|000000c0| 74 65 63 6f 6d 70 20 76 | 65 72 73 69 6f 6e 20 32 |tecomp v|ersion 2|
|000000d0| 2e 32 35 3b 20 31 2d 53 | 65 70 2d 39 34 2e 0a 3b |.25; 1-S|ep-94..;|
|000000e0| 3b 3b 20 6f 70 74 69 6d | 69 7a 61 74 69 6f 6e 20 |;; optim|ization |
|000000f0| 69 73 20 6f 6e 2e 0a 3b | 3b 3b 20 74 68 69 73 20 |is on..;|;; this |
|00000100| 66 69 6c 65 20 75 73 65 | 73 20 6f 70 63 6f 64 65 |file use|s opcode|
|00000110| 73 20 77 68 69 63 68 20 | 64 6f 20 6e 6f 74 20 65 |s which |do not e|
|00000120| 78 69 73 74 20 69 6e 20 | 45 6d 61 63 73 20 31 38 |xist in |Emacs 18|
|00000130| 2e 0a 0a 28 69 66 20 28 | 61 6e 64 20 28 62 6f 75 |...(if (|and (bou|
|00000140| 6e 64 70 20 27 65 6d 61 | 63 73 2d 76 65 72 73 69 |ndp 'ema|cs-versi|
|00000150| 6f 6e 29 0a 09 20 28 6f | 72 20 28 61 6e 64 20 28 |on).. (o|r (and (|
|00000160| 62 6f 75 6e 64 70 20 27 | 65 70 6f 63 68 3a 3a 76 |boundp '|epoch::v|
|00000170| 65 72 73 69 6f 6e 29 20 | 65 70 6f 63 68 3a 3a 76 |ersion) |epoch::v|
|00000180| 65 72 73 69 6f 6e 29 0a | 09 20 20 20 20 20 28 73 |ersion).|. (s|
|00000190| 74 72 69 6e 67 2d 6c 65 | 73 73 70 20 65 6d 61 63 |tring-le|ssp emac|
|000001a0| 73 2d 76 65 72 73 69 6f | 6e 20 22 31 39 22 29 29 |s-versio|n "19"))|
|000001b0| 29 0a 20 20 20 20 28 65 | 72 72 6f 72 20 22 54 68 |). (e|rror "Th|
|000001c0| 69 73 20 66 69 6c 65 20 | 77 61 73 20 63 6f 6d 70 |is file |was comp|
|000001d0| 69 6c 65 64 20 66 6f 72 | 20 45 6d 61 63 73 20 31 |iled for| Emacs 1|
|000001e0| 39 2e 22 29 29 0a 0a 28 | 72 61 6e 64 6f 6d 20 74 |9."))..(|random t|
|000001f0| 29 0a 28 64 65 66 76 61 | 72 20 6d 70 75 7a 2d 73 |).(defva|r mpuz-s|
|00000200| 69 6c 65 6e 74 20 6e 69 | 6c 20 22 5c 0a 2a 53 65 |ilent ni|l "\.*Se|
|00000210| 74 20 74 68 69 73 20 74 | 6f 20 54 20 69 66 20 79 |t this t|o T if y|
|00000220| 6f 75 20 64 6f 6e 27 74 | 20 77 61 6e 74 20 64 69 |ou don't| want di|
|00000230| 6e 67 73 20 6f 6e 20 69 | 6e 70 75 74 73 2e 22 29 |ngs on i|nputs.")|
|00000240| 0a 28 66 73 65 74 20 27 | 6d 70 75 7a 2d 64 69 6e |.(fset '|mpuz-din|
|00000250| 67 20 23 5b 6e 69 6c 20 | 22 08 ae 83 c1 c2 21 87 |g #[nil |".....!.|
|00000260| 22 20 5b 6d 70 75 7a 2d | 73 69 6c 65 6e 74 20 64 |" [mpuz-|silent d|
|00000270| 69 6e 67 20 74 5d 20 32 | 20 22 5c 0a 44 69 6e 67 |ing t] 2| "\.Ding|
|00000280| 73 2c 20 75 6e 6c 65 73 | 73 20 67 6c 6f 62 61 6c |s, unles|s global|
|00000290| 20 76 61 72 69 61 62 6c | 65 20 60 6d 70 75 7a 2d | variabl|e `mpuz-|
|000002a0| 73 69 6c 65 6e 74 27 20 | 66 6f 72 62 69 64 73 20 |silent' |forbids |
|000002b0| 69 74 2e 22 5d 29 0a 28 | 62 79 74 65 2d 63 6f 64 |it."]).(|byte-cod|
|000002c0| 65 20 22 c0 c1 21 ac 82 | c2 11 c2 87 22 20 5b 62 |e "..!..|...." [b|
|000002d0| 6f 75 6e 64 70 20 6d 70 | 75 7a 2d 6d 6f 64 65 2d |oundp mp|uz-mode-|
|000002e0| 68 6f 6f 6b 20 6e 69 6c | 5d 20 32 29 0a 28 64 65 |hook nil|] 2).(de|
|000002f0| 66 76 61 72 20 6d 70 75 | 7a 2d 6d 6f 64 65 2d 6d |fvar mpu|z-mode-m|
|00000300| 61 70 20 6e 69 6c 20 22 | 5c 0a 4c 6f 63 61 6c 20 |ap nil "|\.Local |
|00000310| 6b 65 79 6d 61 70 20 74 | 6f 20 75 73 65 20 69 6e |keymap t|o use in|
|00000320| 20 4d 75 6c 74 20 50 75 | 7a 7a 6c 65 2e 22 29 0a | Mult Pu|zzle.").|
|00000330| 28 62 79 74 65 2d 63 6f | 64 65 20 22 08 84 8b 00 |(byte-co|de "....|
|00000340| c1 20 10 c2 08 c3 c4 23 | 88 c2 08 c5 c4 23 88 c2 |. .....#|.....#..|
|00000350| 08 c6 c4 23 88 c2 08 c7 | c4 23 88 c2 08 c8 c4 23 |...#....|.#.....#|
|00000360| 88 c2 08 c9 c4 23 88 c2 | 08 ca c4 23 88 c2 08 cb |.....#..|...#....|
|00000370| c4 23 88 c2 08 cc c4 23 | 88 c2 08 cd c4 23 88 c2 |.#.....#|.....#..|
|00000380| 08 ce c4 23 88 c2 08 cf | c4 23 88 c2 08 d0 c4 23 |...#....|.#.....#|
|00000390| 88 c2 08 d1 c4 23 88 c2 | 08 d2 c4 23 88 c2 08 d3 |.....#..|...#....|
|000003a0| c4 23 88 c2 08 d4 c4 23 | 88 c2 08 d5 c4 23 88 c2 |.#.....#|.....#..|
|000003b0| 08 d6 c4 23 88 c2 08 d7 | c4 23 88 c2 08 d8 d9 23 |...#....|.#.....#|
|000003c0| 88 c2 08 da db 23 88 c1 | 87 22 20 5b 6d 70 75 7a |.....#..|." [mpuz|
|000003d0| 2d 6d 6f 64 65 2d 6d 61 | 70 20 6d 61 6b 65 2d 73 |-mode-ma|p make-s|
|000003e0| 70 61 72 73 65 2d 6b 65 | 79 6d 61 70 20 64 65 66 |parse-ke|ymap def|
|000003f0| 69 6e 65 2d 6b 65 79 20 | 22 61 22 20 6d 70 75 7a |ine-key |"a" mpuz|
|00000400| 2d 74 72 79 2d 6c 65 74 | 74 65 72 20 22 62 22 20 |-try-let|ter "b" |
|00000410| 22 63 22 20 22 64 22 20 | 22 65 22 20 22 66 22 20 |"c" "d" |"e" "f" |
|00000420| 22 67 22 20 22 68 22 20 | 22 69 22 20 22 6a 22 20 |"g" "h" |"i" "j" |
|00000430| 22 41 22 20 22 42 22 20 | 22 43 22 20 22 44 22 20 |"A" "B" |"C" "D" |
|00000440| 22 45 22 20 22 46 22 20 | 22 47 22 20 22 48 22 20 |"E" "F" |"G" "H" |
|00000450| 22 49 22 20 22 4a 22 20 | 22 07 22 20 6d 70 75 7a |"I" "J" |"." mpuz|
|00000460| 2d 6f 66 66 65 72 2d 61 | 62 6f 72 74 20 22 3f 22 |-offer-a|bort "?"|
|00000470| 20 64 65 73 63 72 69 62 | 65 2d 6d 6f 64 65 5d 20 | describ|e-mode] |
|00000480| 34 29 0a 28 66 73 65 74 | 20 27 6d 70 75 7a 2d 6d |4).(fset| 'mpuz-m|
|00000490| 6f 64 65 20 23 5b 6e 69 | 6c 20 22 c0 11 c2 13 c4 |ode #[ni|l ".....|
|000004a0| 0d 21 88 c6 c7 21 87 22 | 20 5b 6d 70 75 7a 2d 6d |.!...!."| [mpuz-m|
|000004b0| 6f 64 65 20 6d 61 6a 6f | 72 2d 6d 6f 64 65 20 22 |ode majo|r-mode "|
|000004c0| 4d 75 6c 74 20 50 75 7a | 7a 6c 65 22 20 6d 6f 64 |Mult Puz|zle" mod|
|000004d0| 65 2d 6e 61 6d 65 20 75 | 73 65 2d 6c 6f 63 61 6c |e-name u|se-local|
|000004e0| 2d 6d 61 70 20 6d 70 75 | 7a 2d 6d 6f 64 65 2d 6d |-map mpu|z-mode-m|
|000004f0| 61 70 20 72 75 6e 2d 68 | 6f 6f 6b 73 20 6d 70 75 |ap run-h|ooks mpu|
|00000500| 7a 2d 6d 6f 64 65 2d 68 | 6f 6f 6b 5d 20 32 20 22 |z-mode-h|ook] 2 "|
|00000510| 5c 0a 4d 75 6c 74 69 70 | 6c 69 63 61 74 69 6f 6e |\.Multip|lication|
|00000520| 20 70 75 7a 7a 6c 65 20 | 6d 6f 64 65 2e 0a 0a 59 | puzzle |mode...Y|
|00000530| 6f 75 20 68 61 76 65 20 | 74 6f 20 67 75 65 73 73 |ou have |to guess|
|00000540| 20 77 68 69 63 68 20 6c | 65 74 74 65 72 73 20 73 | which l|etters s|
|00000550| 74 61 6e 64 20 66 6f 72 | 20 77 68 69 63 68 20 64 |tand for| which d|
|00000560| 69 67 69 74 73 20 69 6e | 20 74 68 65 0a 6d 75 6c |igits in| the.mul|
|00000570| 74 69 70 6c 69 63 61 74 | 69 6f 6e 20 64 69 73 70 |tiplicat|ion disp|
|00000580| 6c 61 79 65 64 20 69 6e | 73 69 64 65 20 74 68 65 |layed in|side the|
|00000590| 20 60 2a 4d 75 6c 74 20 | 50 75 7a 7a 6c 65 2a 27 | `*Mult |Puzzle*'|
|000005a0| 20 62 75 66 66 65 72 2e | 0a 0a 59 6f 75 20 6d 61 | buffer.|..You ma|
|000005b0| 79 20 65 6e 74 65 72 20 | 61 20 67 75 65 73 73 20 |y enter |a guess |
|000005c0| 66 6f 72 20 61 20 6c 65 | 74 74 65 72 27 73 20 76 |for a le|tter's v|
|000005d0| 61 6c 75 65 20 62 79 20 | 74 79 70 69 6e 67 20 66 |alue by |typing f|
|000005e0| 69 72 73 74 20 74 68 65 | 20 6c 65 74 74 65 72 2c |irst the| letter,|
|000005f0| 0a 74 68 65 6e 20 74 68 | 65 20 64 69 67 69 74 2e |.then th|e digit.|
|00000600| 20 20 54 68 75 73 2c 20 | 74 6f 20 67 75 65 73 73 | Thus, |to guess|
|00000610| 20 74 68 61 74 20 41 3d | 33 2c 20 74 79 70 65 20 | that A=|3, type |
|00000620| 41 20 33 2e 0a 0a 54 6f | 20 6c 65 61 76 65 20 74 |A 3...To| leave t|
|00000630| 68 65 20 67 61 6d 65 20 | 74 6f 20 64 6f 20 6f 74 |he game |to do ot|
|00000640| 68 65 72 20 65 64 69 74 | 69 6e 67 20 77 6f 72 6b |her edit|ing work|
|00000650| 2c 20 6a 75 73 74 20 73 | 77 69 74 63 68 20 62 75 |, just s|witch bu|
|00000660| 66 66 65 72 73 2e 0a 54 | 68 65 6e 20 79 6f 75 20 |ffers..T|hen you |
|00000670| 6d 61 79 20 72 65 73 75 | 6d 65 20 74 68 65 20 67 |may resu|me the g|
|00000680| 61 6d 65 20 77 69 74 68 | 20 4d 2d 78 20 6d 70 75 |ame with| M-x mpu|
|00000690| 7a 2e 0a 59 6f 75 20 6d | 61 79 20 61 62 6f 72 74 |z..You m|ay abort|
|000006a0| 20 61 20 67 61 6d 65 20 | 62 79 20 74 79 70 69 6e | a game |by typin|
|000006b0| 67 20 5c 5c 3c 6d 70 75 | 7a 2d 6d 6f 64 65 2d 6d |g \\<mpu|z-mode-m|
|000006c0| 61 70 3e 5c 5c 5b 6d 70 | 75 7a 2d 6f 66 66 65 72 |ap>\\[mp|uz-offer|
|000006d0| 2d 61 62 6f 72 74 5d 2e | 22 20 6e 69 6c 5d 29 0a |-abort].|" nil]).|
|000006e0| 28 64 65 66 76 61 72 20 | 6d 70 75 7a 2d 6e 62 2d |(defvar |mpuz-nb-|
|000006f0| 65 72 72 6f 72 73 20 30 | 20 22 5c 0a 4e 75 6d 62 |errors 0| "\.Numb|
|00000700| 65 72 20 6f 66 20 65 72 | 72 6f 72 73 20 6d 61 64 |er of er|rors mad|
|00000710| 65 20 69 6e 20 63 75 72 | 72 65 6e 74 20 67 61 6d |e in cur|rent gam|
|00000720| 65 2e 22 29 0a 28 64 65 | 66 76 61 72 20 6d 70 75 |e.").(de|fvar mpu|
|00000730| 7a 2d 6e 62 2d 63 6f 6d | 70 6c 65 74 65 64 2d 67 |z-nb-com|pleted-g|
|00000740| 61 6d 65 73 20 30 20 22 | 5c 0a 4e 75 6d 62 65 72 |ames 0 "|\.Number|
|00000750| 20 6f 66 20 67 61 6d 65 | 73 20 63 6f 6d 70 6c 65 | of game|s comple|
|00000760| 74 65 64 2e 22 29 0a 28 | 64 65 66 76 61 72 20 6d |ted.").(|defvar m|
|00000770| 70 75 7a 2d 6e 62 2d 63 | 75 6d 75 6c 61 74 65 64 |puz-nb-c|umulated|
|00000780| 2d 65 72 72 6f 72 73 20 | 30 20 22 5c 0a 4e 75 6d |-errors |0 "\.Num|
|00000790| 62 65 72 20 6f 66 20 65 | 72 72 6f 72 73 20 6d 61 |ber of e|rrors ma|
|000007a0| 64 65 20 69 6e 20 70 72 | 65 76 69 6f 75 73 20 67 |de in pr|evious g|
|000007b0| 61 6d 65 73 2e 22 29 0a | 28 64 65 66 76 61 72 20 |ames.").|(defvar |
|000007c0| 6d 70 75 7a 2d 69 6e 2d | 70 72 6f 67 72 65 73 73 |mpuz-in-|progress|
|000007d0| 20 6e 69 6c 20 22 5c 0a | 54 72 75 65 20 69 66 20 | nil "\.|True if |
|000007e0| 61 20 67 61 6d 65 20 69 | 73 20 63 75 72 72 65 6e |a game i|s curren|
|000007f0| 74 6c 79 20 69 6e 20 70 | 72 6f 67 72 65 73 73 2e |tly in p|rogress.|
|00000800| 22 29 0a 28 64 65 66 76 | 61 72 20 6d 70 75 7a 2d |").(defv|ar mpuz-|
|00000810| 66 6f 75 6e 64 2d 64 69 | 67 69 74 73 20 28 6d 61 |found-di|gits (ma|
|00000820| 6b 65 2d 76 65 63 74 6f | 72 20 31 30 20 6e 69 6c |ke-vecto|r 10 nil|
|00000830| 29 20 22 5c 0a 41 20 76 | 65 63 74 6f 72 20 72 65 |) "\.A v|ector re|
|00000840| 63 6f 72 64 69 6e 67 20 | 77 68 69 63 68 20 64 69 |cording |which di|
|00000850| 67 69 74 73 20 68 61 76 | 65 20 62 65 65 6e 20 64 |gits hav|e been d|
|00000860| 65 63 72 79 70 74 65 64 | 2e 22 29 0a 28 66 73 65 |ecrypted|.").(fse|
|00000870| 74 20 27 6d 70 75 7a 2d | 64 69 67 69 74 2d 73 6f |t 'mpuz-|digit-so|
|00000880| 6c 76 65 64 2d 70 20 27 | 28 6d 61 63 72 6f 20 2e |lved-p '|(macro .|
|00000890| 20 23 5b 28 64 69 67 69 | 74 29 20 22 c0 c1 5c 6e | #[(digi|t) "..\n|
|000008a0| 45 87 22 20 5b 61 72 65 | 66 20 6d 70 75 7a 2d 66 |E." [are|f mpuz-f|
|000008b0| 6f 75 6e 64 2d 64 69 67 | 69 74 73 20 64 69 67 69 |ound-dig|its digi|
|000008c0| 74 5d 20 33 5d 29 29 0a | 28 64 65 66 76 61 72 20 |t] 3])).|(defvar |
|000008d0| 6d 70 75 7a 2d 64 69 67 | 69 74 2d 74 6f 2d 6c 65 |mpuz-dig|it-to-le|
|000008e0| 74 74 65 72 20 28 6d 61 | 6b 65 2d 76 65 63 74 6f |tter (ma|ke-vecto|
|000008f0| 72 20 31 30 20 30 29 20 | 22 5c 0a 41 20 70 65 72 |r 10 0) |"\.A per|
|00000900| 6d 75 74 61 74 69 6f 6e | 20 66 72 6f 6d 20 5b 30 |mutation| from [0|
|00000910| 2e 2e 39 5d 20 74 6f 20 | 5b 30 2e 2e 39 5d 2e 22 |..9] to |[0..9]."|
|00000920| 29 0a 28 64 65 66 76 61 | 72 20 6d 70 75 7a 2d 6c |).(defva|r mpuz-l|
|00000930| 65 74 74 65 72 2d 74 6f | 2d 64 69 67 69 74 20 28 |etter-to|-digit (|
|00000940| 6d 61 6b 65 2d 76 65 63 | 74 6f 72 20 31 30 20 30 |make-vec|tor 10 0|
|00000950| 29 20 22 5c 0a 54 68 65 | 20 69 6e 76 65 72 73 65 |) "\.The| inverse|
|00000960| 20 6f 66 20 6d 70 75 7a | 2d 64 69 67 69 74 2d 74 | of mpuz|-digit-t|
|00000970| 6f 2d 6c 65 74 74 65 72 | 2e 22 29 0a 28 62 79 74 |o-letter|.").(byt|
|00000980| 65 2d 63 6f 64 65 20 22 | c0 c1 4d 88 c2 c3 4d 87 |e-code "|..M...M.|
|00000990| 22 20 5b 6d 70 75 7a 2d | 74 6f 2d 64 69 67 69 74 |" [mpuz-|to-digit|
|000009a0| 20 28 6d 61 63 72 6f 20 | 2e 20 23 5b 28 6c 65 74 | (macro |. #[(let|
|000009b0| 74 65 72 29 20 22 c0 c1 | 5c 6e 45 87 22 20 5b 61 |ter) "..|\nE." [a|
|000009c0| 72 65 66 20 6d 70 75 7a | 2d 6c 65 74 74 65 72 2d |ref mpuz|-letter-|
|000009d0| 74 6f 2d 64 69 67 69 74 | 20 6c 65 74 74 65 72 5d |to-digit| letter]|
|000009e0| 20 33 5d 29 20 6d 70 75 | 7a 2d 74 6f 2d 6c 65 74 | 3]) mpu|z-to-let|
|000009f0| 74 65 72 20 28 6d 61 63 | 72 6f 20 2e 20 23 5b 28 |ter (mac|ro . #[(|
|00000a00| 64 69 67 69 74 29 20 22 | c0 c1 5c 6e 45 87 22 20 |digit) "|..\nE." |
|00000a10| 5b 61 72 65 66 20 6d 70 | 75 7a 2d 64 69 67 69 74 |[aref mp|uz-digit|
|00000a20| 2d 74 6f 2d 6c 65 74 74 | 65 72 20 64 69 67 69 74 |-to-lett|er digit|
|00000a30| 5d 20 33 5d 29 5d 20 32 | 29 0a 28 66 73 65 74 20 |] 3])] 2|).(fset |
|00000a40| 27 6d 70 75 7a 2d 62 75 | 69 6c 64 2d 72 61 6e 64 |'mpuz-bu|ild-rand|
|00000a50| 6f 6d 2d 70 65 72 6d 20 | 23 5b 6e 69 6c 20 22 c0 |om-perm |#[nil ".|
|00000a60| c1 c2 c3 c4 c5 c6 c7 c8 | c9 af 5c 6e ca cb 1e 0c |........|..\n....|
|00000a70| 1e 0d 1e 0e 0e 0e ad a8 | cf 0e 0d 21 0e 0e 38 16 |........|...!..8.|
|00000a80| 0c d0 0e 0c 0e 0e 5c 22 | 16 0e 0e 0d 53 16 0d 0e |......\"|....S...|
|00000a90| 11 0e 0d 0e 0c 49 88 0e | 12 0e 0c 0e 0d 49 88 aa |.....I..|.....I..|
|00000aa0| 54 2b 87 22 20 5b 30 20 | 31 20 32 20 33 20 34 20 |T+." [0 |1 2 3 4 |
|00000ab0| 35 20 36 20 37 20 38 20 | 39 20 31 30 20 6e 69 6c |5 6 7 8 |9 10 nil|
|00000ac0| 20 65 6c 65 6d 20 69 6e | 64 65 78 20 6c 65 74 74 | elem in|dex lett|
|00000ad0| 65 72 73 20 72 61 6e 64 | 6f 6d 20 64 65 6c 71 20 |ers rand|om delq |
|00000ae0| 6d 70 75 7a 2d 64 69 67 | 69 74 2d 74 6f 2d 6c 65 |mpuz-dig|it-to-le|
|00000af0| 74 74 65 72 20 6d 70 75 | 7a 2d 6c 65 74 74 65 72 |tter mpu|z-letter|
|00000b00| 2d 74 6f 2d 64 69 67 69 | 74 5d 20 31 30 20 22 5c |-to-digi|t] 10 "\|
|00000b10| 0a 49 6e 69 74 69 61 6c | 69 7a 65 20 70 75 7a 7a |.Initial|ize puzz|
|00000b20| 6c 65 20 63 6f 64 69 6e | 67 20 77 69 74 68 20 61 |le codin|g with a|
|00000b30| 20 72 61 6e 64 6f 6d 20 | 70 65 72 6d 75 74 61 74 | random |permutat|
|00000b40| 69 6f 6e 2e 22 5d 29 0a | 28 64 65 66 76 61 72 20 |ion."]).|(defvar |
|00000b50| 6d 70 75 7a 2d 62 6f 61 | 72 64 20 28 6d 61 6b 65 |mpuz-boa|rd (make|
|00000b60| 2d 76 65 63 74 6f 72 20 | 31 30 20 6e 69 6c 29 20 |-vector |10 nil) |
|00000b70| 22 5c 0a 54 68 65 20 62 | 6f 61 72 64 20 61 73 73 |"\.The b|oard ass|
|00000b80| 6f 63 69 61 74 65 73 20 | 74 6f 20 61 6e 79 20 64 |ociates |to any d|
|00000b90| 69 67 69 74 20 74 68 65 | 20 6c 69 73 74 20 6f 66 |igit the| list of|
|00000ba0| 20 73 71 75 61 72 65 73 | 20 77 68 65 72 65 20 69 | squares| where i|
|00000bb0| 74 20 61 70 70 65 61 72 | 73 2e 22 29 0a 28 66 73 |t appear|s.").(fs|
|00000bc0| 65 74 20 27 6d 70 75 7a | 2d 70 75 74 2d 64 69 67 |et 'mpuz|-put-dig|
|00000bd0| 69 74 2d 6f 6e 2d 62 6f | 61 72 64 20 23 5b 28 6e |it-on-bo|ard #[(n|
|00000be0| 75 6d 62 65 72 20 73 71 | 75 61 72 65 29 20 22 08 |umber sq|uare) ".|
|00000bf0| c1 a6 10 5c 6e 08 0b 5c | 6e 08 48 42 49 87 22 20 |...\n..\|n.HBI." |
|00000c00| 5b 6e 75 6d 62 65 72 20 | 31 30 20 6d 70 75 7a 2d |[number |10 mpuz-|
|00000c10| 62 6f 61 72 64 20 73 71 | 75 61 72 65 5d 20 35 20 |board sq|uare] 5 |
|00000c20| 22 5c 0a 50 75 74 20 28 | 6c 61 73 74 20 64 69 67 |"\.Put (|last dig|
|00000c30| 69 74 20 6f 66 29 20 4e | 55 4d 42 45 52 20 6f 6e |it of) N|UMBER on|
|00000c40| 20 53 51 55 41 52 45 20 | 6f 66 20 74 68 65 20 70 | SQUARE |of the p|
|00000c50| 75 7a 7a 6c 65 20 62 6f | 61 72 64 2e 22 5d 29 0a |uzzle bo|ard."]).|
|00000c60| 28 66 73 65 74 20 27 6d | 70 75 7a 2d 63 68 65 63 |(fset 'm|puz-chec|
|00000c70| 6b 2d 61 6c 6c 2d 73 6f | 6c 76 65 64 20 23 5b 6e |k-all-so|lved #[n|
|00000c80| 69 6c 20 22 c0 c1 8d 87 | 22 20 5b 66 6f 75 6e 64 |il "....|" [found|
|00000c90| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 c0 19 c2 | (byte-c|ode "...|
|00000ca0| 09 54 89 11 56 ab 91 0b | 09 48 ac 73 0c 09 48 ab |.T..V...|.H.s..H.|
|00000cb0| 6e c5 c6 c7 5c 22 88 aa | 67 29 c8 87 22 20 5b 2d |n...\"..|g).." [-|
|00000cc0| 31 20 64 69 67 69 74 20 | 31 30 20 6d 70 75 7a 2d |1 digit |10 mpuz-|
|00000cd0| 66 6f 75 6e 64 2d 64 69 | 67 69 74 73 20 6d 70 75 |found-di|gits mpu|
|00000ce0| 7a 2d 62 6f 61 72 64 20 | 74 68 72 6f 77 20 66 6f |z-board |throw fo|
|00000cf0| 75 6e 64 20 6e 69 6c 20 | 74 5d 20 33 29 5d 20 32 |und nil |t] 3)] 2|
|00000d00| 20 22 5c 0a 43 68 65 63 | 6b 20 77 68 65 74 68 65 | "\.Chec|k whethe|
|00000d10| 72 20 61 6c 6c 20 64 69 | 67 69 74 73 20 68 61 76 |r all di|gits hav|
|00000d20| 65 20 62 65 65 6e 20 73 | 6f 6c 76 65 64 2e 20 52 |e been s|olved. R|
|00000d30| 65 74 75 72 6e 20 74 20 | 69 66 20 79 65 73 2e 22 |eturn t |if yes."|
|00000d40| 5d 29 0a 28 66 73 65 74 | 20 27 6d 70 75 7a 2d 72 |]).(fset| 'mpuz-r|
|00000d50| 61 6e 64 6f 6d 2d 70 75 | 7a 7a 6c 65 20 23 5b 6e |andom-pu|zzle #[n|
|00000d60| 69 6c 20 22 c0 20 88 c1 | 5c 6e c3 5c 22 88 c3 89 |il ". ..|\n.\"...|
|00000d70| 89 89 89 1c 1d 1e 06 1e | 07 1e 08 c9 ca 21 16 08 |........|.....!..|
|00000d80| c9 cb 21 16 07 0e 08 0e | 07 cc a6 5f 16 06 0e 08 |..!.....|..._....|
|00000d90| 0e 07 cc a5 5f 15 0e 08 | 0e 07 5f 14 0e 06 ca 57 |...._...|.._....W|
|00000da0| ac 59 0d ca 57 ac 54 cd | 0e 08 ce 5c 22 88 cd 0e |.Y..W.T.|...\"...|
|00000db0| 08 cc a5 cf 5c 22 88 cd | 0e 08 cb a5 d0 5c 22 88 |....\"..|.....\".|
|00000dc0| cd 0e 07 d1 5c 22 88 cd | 0e 07 cc a5 d2 5c 22 88 |....\"..|.....\".|
|00000dd0| cd 0e 06 d3 5c 22 88 cd | 0e 06 cc a5 d4 5c 22 88 |....\"..|.....\".|
|00000de0| cd 0e 06 cb a5 d5 5c 22 | 88 cd 0e 06 ca a5 d6 5c |......\"|.......\|
|00000df0| 22 88 cd 0d d7 5c 22 88 | cd 0d cc a5 d8 5c 22 88 |"....\".|.....\".|
|00000e00| cd 0d cb a5 d9 5c 22 88 | cd 0d ca a5 da 5c 22 88 |.....\".|.....\".|
|00000e10| cd 0c db 5c 22 88 cd 0c | cc a5 dc 5c 22 88 cd 0c |...\"...|...\"...|
|00000e20| cb a5 dd 5c 22 88 cd 0c | ca a5 de 5c 22 88 cd 0c |...\"...|...\"...|
|00000e30| df a5 e0 5c 22 2d 87 22 | 20 5b 6d 70 75 7a 2d 62 |...\"-."| [mpuz-b|
|00000e40| 75 69 6c 64 2d 72 61 6e | 64 6f 6d 2d 70 65 72 6d |uild-ran|dom-perm|
|00000e50| 20 66 69 6c 6c 61 72 72 | 61 79 20 6d 70 75 7a 2d | fillarr|ay mpuz-|
|00000e60| 62 6f 61 72 64 20 6e 69 | 6c 20 45 20 44 20 43 20 |board ni|l E D C |
|00000e70| 42 20 41 20 72 61 6e 64 | 6f 6d 20 31 30 30 30 20 |B A rand|om 1000 |
|00000e80| 31 30 30 20 31 30 20 6d | 70 75 7a 2d 70 75 74 2d |100 10 m|puz-put-|
|00000e90| 64 69 67 69 74 2d 6f 6e | 2d 62 6f 61 72 64 20 28 |digit-on|-board (|
|00000ea0| 32 20 2e 20 39 29 20 28 | 32 20 2e 20 37 29 20 28 |2 . 9) (|2 . 7) (|
|00000eb0| 32 20 2e 20 35 29 20 28 | 34 20 2e 20 39 29 20 28 |2 . 5) (|4 . 9) (|
|00000ec0| 34 20 2e 20 37 29 20 28 | 36 20 2e 20 39 29 20 28 |4 . 7) (|6 . 9) (|
|00000ed0| 36 20 2e 20 37 29 20 28 | 36 20 2e 20 35 29 20 28 |6 . 7) (|6 . 5) (|
|00000ee0| 36 20 2e 20 33 29 20 28 | 38 20 2e 20 37 29 20 28 |6 . 3) (|8 . 7) (|
|00000ef0| 38 20 2e 20 35 29 20 28 | 38 20 2e 20 33 29 20 28 |8 . 5) (|8 . 3) (|
|00000f00| 38 20 2e 20 31 29 20 28 | 31 30 20 2e 20 39 29 20 |8 . 1) (|10 . 9) |
|00000f10| 28 31 30 20 2e 20 37 29 | 20 28 31 30 20 2e 20 35 |(10 . 7)| (10 . 5|
|00000f20| 29 20 28 31 30 20 2e 20 | 33 29 20 31 30 30 30 30 |) (10 . |3) 10000|
|00000f30| 20 28 31 30 20 2e 20 31 | 29 5d 20 35 20 22 5c 0a | (10 . 1|)] 5 "\.|
|00000f40| 44 72 61 77 20 72 61 6e | 64 6f 6d 20 76 61 6c 75 |Draw ran|dom valu|
|00000f50| 65 73 20 74 6f 20 62 65 | 20 6d 75 6c 74 69 70 6c |es to be| multipl|
|00000f60| 69 65 64 20 69 6e 20 61 | 20 70 75 7a 7a 6c 65 2e |ied in a| puzzle.|
|00000f70| 22 5d 29 0a 28 64 65 66 | 63 6f 6e 73 74 20 6d 70 |"]).(def|const mp|
|00000f80| 75 7a 2d 66 72 61 6d 65 | 77 6f 72 6b 20 22 5c 6e |uz-frame|work "\n|
|00000f90| 20 20 20 20 20 2e 20 2e | 20 2e 5c 6e 20 20 20 20 | . .| .\n |
|00000fa0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 4e | | N|
|00000fb0| 75 6d 62 65 72 20 6f 66 | 20 65 72 72 6f 72 73 20 |umber of| errors |
|00000fc0| 28 74 68 69 73 20 67 61 | 6d 65 29 3a 20 30 5c 6e |(this ga|me): 0\n|
|00000fd0| 20 20 20 20 78 20 20 2e | 20 2e 5c 6e 20 20 20 2d | x .| .\n -|
|00000fe0| 2d 2d 2d 2d 2d 2d 5c 6e | 20 20 20 2e 20 2e 20 2e |------\n| . . .|
|00000ff0| 20 2e 5c 6e 20 20 20 20 | 20 20 20 20 20 20 20 20 | .\n | |
|00001000| 20 20 20 20 20 20 20 20 | 20 20 20 20 4e 75 6d 62 | | Numb|
|00001010| 65 72 20 6f 66 20 63 6f | 6d 70 6c 65 74 65 64 20 |er of co|mpleted |
|00001020| 67 61 6d 65 73 3a 20 30 | 5c 6e 20 2e 20 2e 20 2e |games: 0|\n . . .|
|00001030| 20 2e 5c 6e 20 2d 2d 2d | 2d 2d 2d 2d 2d 2d 20 20 | .\n ---|------ |
|00001040| 20 20 20 20 20 20 20 20 | 20 20 20 20 41 76 65 72 | | Aver|
|00001050| 61 67 65 20 6e 75 6d 62 | 65 72 20 6f 66 20 65 72 |age numb|er of er|
|00001060| 72 6f 72 73 3a 20 30 2e | 30 30 5c 6e 20 2e 20 2e |rors: 0.|00\n . .|
|00001070| 20 2e 20 2e 20 2e 22 20 | 22 5c 0a 54 68 65 20 67 | . . ." |"\.The g|
|00001080| 65 6e 65 72 61 6c 20 70 | 69 63 74 75 72 65 20 6f |eneral p|icture o|
|00001090| 66 20 74 68 65 20 70 75 | 7a 7a 6c 65 20 73 63 72 |f the pu|zzle scr|
|000010a0| 65 65 6e 2c 20 61 73 20 | 61 20 73 74 72 69 6e 67 |een, as |a string|
|000010b0| 2e 22 29 0a 28 66 73 65 | 74 20 27 6d 70 75 7a 2d |.").(fse|t 'mpuz-|
|000010c0| 63 72 65 61 74 65 2d 62 | 75 66 66 65 72 20 23 5b |create-b|uffer #[|
|000010d0| 6e 69 6c 20 22 c0 c1 21 | 1a 8a 5c 6e 71 88 c3 1c |nil "..!|..\nq...|
|000010e0| c5 20 88 0e 06 63 88 c7 | 20 88 c8 20 88 c9 20 88 |. ...c..| .. .. .|
|000010f0| 2a 5c 6e 29 87 22 20 5b | 67 65 74 2d 62 75 66 66 |*\n)." [|get-buff|
|00001100| 65 72 2d 63 72 65 61 74 | 65 20 22 2a 4d 75 6c 74 |er-creat|e "*Mult|
|00001110| 20 50 75 7a 7a 6c 65 2a | 22 20 62 75 66 66 20 6e | Puzzle*|" buff n|
|00001120| 69 6c 20 62 75 66 66 65 | 72 2d 72 65 61 64 2d 6f |il buffe|r-read-o|
|00001130| 6e 6c 79 20 65 72 61 73 | 65 2d 62 75 66 66 65 72 |nly eras|e-buffer|
|00001140| 20 6d 70 75 7a 2d 66 72 | 61 6d 65 77 6f 72 6b 20 | mpuz-fr|amework |
|00001150| 6d 70 75 7a 2d 70 61 69 | 6e 74 2d 62 6f 61 72 64 |mpuz-pai|nt-board|
|00001160| 20 6d 70 75 7a 2d 70 61 | 69 6e 74 2d 65 72 72 6f | mpuz-pa|int-erro|
|00001170| 72 73 20 6d 70 75 7a 2d | 70 61 69 6e 74 2d 73 74 |rs mpuz-|paint-st|
|00001180| 61 74 69 73 74 69 63 73 | 5d 20 32 20 22 5c 0a 43 |atistics|] 2 "\.C|
|00001190| 72 65 61 74 65 20 28 6f | 72 20 72 65 63 72 65 61 |reate (o|r recrea|
|000011a0| 74 65 29 20 74 68 65 20 | 70 75 7a 7a 6c 65 20 62 |te) the |puzzle b|
|000011b0| 75 66 66 65 72 2e 20 52 | 65 74 75 72 6e 20 69 74 |uffer. R|eturn it|
|000011c0| 2e 22 5d 29 0a 28 66 73 | 65 74 20 27 6d 70 75 7a |."]).(fs|et 'mpuz|
|000011d0| 2d 70 61 69 6e 74 2d 65 | 72 72 6f 72 73 20 23 5b |-paint-e|rrors #[|
|000011e0| 6e 69 6c 20 22 c0 20 88 | c1 1a c3 c4 21 88 c5 c6 |nil ". .|....!...|
|000011f0| 21 88 c7 20 88 c8 0e 09 | 21 63 29 87 22 20 5b 6d |!.. ....|!c)." [m|
|00001200| 70 75 7a 2d 73 77 69 74 | 63 68 2d 74 6f 2d 77 69 |puz-swit|ch-to-wi|
|00001210| 6e 64 6f 77 20 6e 69 6c | 20 62 75 66 66 65 72 2d |ndow nil| buffer-|
|00001220| 72 65 61 64 2d 6f 6e 6c | 79 20 67 6f 74 6f 2d 6c |read-onl|y goto-l|
|00001230| 69 6e 65 20 33 20 6d 6f | 76 65 2d 74 6f 2d 63 6f |ine 3 mo|ve-to-co|
|00001240| 6c 75 6d 6e 20 34 39 20 | 6d 70 75 7a 2d 64 65 6c |lumn 49 |mpuz-del|
|00001250| 65 74 65 2d 6c 69 6e 65 | 20 70 72 69 6e 31 2d 74 |ete-line| prin1-t|
|00001260| 6f 2d 73 74 72 69 6e 67 | 20 6d 70 75 7a 2d 6e 62 |o-string| mpuz-nb|
|00001270| 2d 65 72 72 6f 72 73 5d | 20 32 20 22 5c 0a 50 61 |-errors]| 2 "\.Pa|
|00001280| 69 6e 74 20 65 72 72 6f | 72 20 63 6f 75 6e 74 20 |int erro|r count |
|00001290| 6f 6e 20 74 68 65 20 70 | 75 7a 7a 6c 65 20 73 63 |on the p|uzzle sc|
|000012a0| 72 65 65 6e 2e 22 5d 29 | 0a 28 66 73 65 74 20 27 |reen."])|.(fset '|
|000012b0| 6d 70 75 7a 2d 70 61 69 | 6e 74 2d 73 74 61 74 69 |mpuz-pai|nt-stati|
|000012c0| 73 74 69 63 73 20 23 5b | 6e 69 6c 20 22 08 c1 55 |stics #[|nil "..U|
|000012d0| ab 83 c1 aa 89 08 5c 6e | c3 5f 5c 5c 08 89 5c 5c |......\n|._\\..\\|
|000012e0| a5 89 1c c5 a6 1e 06 c7 | 1e 08 c9 ca 21 88 cb cc |........|....!...|
|000012f0| 21 88 cd 20 88 ce 08 21 | 63 88 c9 cf 21 88 cb d0 |!.. ...!|c...!...|
|00001300| 21 88 cd 20 88 d1 d2 0c | c5 a5 0e 06 d3 a5 0e 06 |!.. ....|........|
|00001310| d3 a6 24 63 2b 87 22 20 | 5b 6d 70 75 7a 2d 6e 62 |..$c+." |[mpuz-nb|
|00001320| 2d 63 6f 6d 70 6c 65 74 | 65 64 2d 67 61 6d 65 73 |-complet|ed-games|
|00001330| 20 30 20 6d 70 75 7a 2d | 6e 62 2d 63 75 6d 75 6c | 0 mpuz-|nb-cumul|
|00001340| 61 74 65 64 2d 65 72 72 | 6f 72 73 20 32 30 30 20 |ated-err|ors 200 |
|00001350| 6d 65 61 6e 20 31 30 30 | 20 66 72 61 63 2d 70 61 |mean 100| frac-pa|
|00001360| 72 74 20 6e 69 6c 20 62 | 75 66 66 65 72 2d 72 65 |rt nil b|uffer-re|
|00001370| 61 64 2d 6f 6e 6c 79 20 | 67 6f 74 6f 2d 6c 69 6e |ad-only |goto-lin|
|00001380| 65 20 37 20 6d 6f 76 65 | 2d 74 6f 2d 63 6f 6c 75 |e 7 move|-to-colu|
|00001390| 6d 6e 20 35 31 20 6d 70 | 75 7a 2d 64 65 6c 65 74 |mn 51 mp|uz-delet|
|000013a0| 65 2d 6c 69 6e 65 20 70 | 72 69 6e 31 2d 74 6f 2d |e-line p|rin1-to-|
|000013b0| 73 74 72 69 6e 67 20 39 | 20 35 30 20 66 6f 72 6d |string 9| 50 form|
|000013c0| 61 74 20 22 25 64 2e 25 | 64 25 64 22 20 31 30 5d |at "%d.%|d%d" 10]|
|000013d0| 20 37 20 22 5c 0a 50 61 | 69 6e 74 20 73 74 61 74 | 7 "\.Pa|int stat|
|000013e0| 69 73 74 69 63 73 20 61 | 62 6f 75 74 20 70 72 65 |istics a|bout pre|
|000013f0| 76 69 6f 75 73 20 67 61 | 6d 65 73 20 6f 6e 20 74 |vious ga|mes on t|
|00001400| 68 65 20 70 75 7a 7a 6c | 65 20 73 63 72 65 65 6e |he puzzl|e screen|
|00001410| 2e 22 5d 29 0a 28 66 73 | 65 74 20 27 6d 70 75 7a |."]).(fs|et 'mpuz|
|00001420| 2d 70 61 69 6e 74 2d 62 | 6f 61 72 64 20 23 5b 6e |-paint-b|oard #[n|
|00001430| 69 6c 20 22 c0 20 88 c1 | 1a c3 5c 6e 54 89 12 56 |il ". ..|..\nT..V|
|00001440| ab 88 c4 0d 5c 6e 48 21 | 88 aa 70 29 65 62 87 22 |....\nH!|..p)eb."|
|00001450| 20 5b 6d 70 75 7a 2d 73 | 77 69 74 63 68 2d 74 6f | [mpuz-s|witch-to|
|00001460| 2d 77 69 6e 64 6f 77 20 | 2d 31 20 6c 65 74 74 65 |-window |-1 lette|
|00001470| 72 20 31 30 20 6d 70 75 | 7a 2d 70 61 69 6e 74 2d |r 10 mpu|z-paint-|
|00001480| 64 69 67 69 74 20 6d 70 | 75 7a 2d 6c 65 74 74 65 |digit mp|uz-lette|
|00001490| 72 2d 74 6f 2d 64 69 67 | 69 74 5d 20 33 20 22 5c |r-to-dig|it] 3 "\|
|000014a0| 0a 50 61 69 6e 74 20 62 | 6f 61 72 64 20 73 69 74 |.Paint b|oard sit|
|000014b0| 75 61 74 69 6f 6e 20 6f | 6e 20 74 68 65 20 70 75 |uation o|n the pu|
|000014c0| 7a 7a 6c 65 20 73 63 72 | 65 65 6e 2e 22 5d 29 0a |zzle scr|een."]).|
|000014d0| 28 66 73 65 74 20 27 6d | 70 75 7a 2d 70 61 69 6e |(fset 'm|puz-pain|
|000014e0| 74 2d 64 69 67 69 74 20 | 23 5b 28 64 69 67 69 74 |t-digit |#[(digit|
|000014f0| 29 20 22 08 09 48 ab 85 | 09 c2 5c 5c aa 85 0b 09 |) "..H..|..\\....|
|00001500| 48 c4 5c 5c 0d 09 48 1e | 06 1e 07 c8 1e 09 0e 06 |H.\\..H.|........|
|00001510| ad a3 ca 0e 06 40 40 21 | 88 cb 0e 06 40 41 21 88 |.....@@!|....@A!.|
|00001520| 0e 07 63 88 cc cd 21 88 | ce cd 21 88 0e 06 41 89 |..c...!.|..!...A.|
|00001530| 16 06 ac 5e c8 2b 87 22 | 20 5b 6d 70 75 7a 2d 66 |...^.+."| [mpuz-f|
|00001540| 6f 75 6e 64 2d 64 69 67 | 69 74 73 20 64 69 67 69 |ound-dig|its digi|
|00001550| 74 20 34 38 20 6d 70 75 | 7a 2d 64 69 67 69 74 2d |t 48 mpu|z-digit-|
|00001560| 74 6f 2d 6c 65 74 74 65 | 72 20 36 35 20 6d 70 75 |to-lette|r 65 mpu|
|00001570| 7a 2d 62 6f 61 72 64 20 | 73 71 75 61 72 65 2d 6c |z-board |square-l|
|00001580| 20 63 68 61 72 20 6e 69 | 6c 20 62 75 66 66 65 72 | char ni|l buffer|
|00001590| 2d 72 65 61 64 2d 6f 6e | 6c 79 20 67 6f 74 6f 2d |-read-on|ly goto-|
|000015a0| 6c 69 6e 65 20 6d 6f 76 | 65 2d 74 6f 2d 63 6f 6c |line mov|e-to-col|
|000015b0| 75 6d 6e 20 64 65 6c 65 | 74 65 2d 63 68 61 72 20 |umn dele|te-char |
|000015c0| 31 20 62 61 63 6b 77 61 | 72 64 2d 63 68 61 72 5d |1 backwa|rd-char]|
|000015d0| 20 34 20 22 5c 0a 50 61 | 69 6e 74 20 61 6c 6c 20 | 4 "\.Pa|int all |
|000015e0| 6f 63 63 75 72 72 65 6e | 63 65 73 20 6f 66 20 44 |occurren|ces of D|
|000015f0| 49 47 49 54 20 6f 6e 20 | 74 68 65 20 70 75 7a 7a |IGIT on |the puzz|
|00001600| 6c 65 20 62 6f 61 72 64 | 2e 22 5d 29 0a 28 66 73 |le board|."]).(fs|
|00001610| 65 74 20 27 6d 70 75 7a | 2d 64 65 6c 65 74 65 2d |et 'mpuz|-delete-|
|00001620| 6c 69 6e 65 20 23 5b 6e | 69 6c 20 22 60 66 c0 55 |line #[n|il "`f.U|
|00001630| 3f ad 86 c1 c2 21 88 aa | 73 87 22 20 5b 31 30 20 |?....!..|s." [10 |
|00001640| 64 65 6c 65 74 65 2d 63 | 68 61 72 20 31 5d 20 32 |delete-c|har 1] 2|
|00001650| 20 22 5c 0a 43 6c 65 61 | 72 20 66 72 6f 6d 20 70 | "\.Clea|r from p|
|00001660| 6f 69 6e 74 20 74 6f 20 | 6e 65 78 74 20 6e 65 77 |oint to |next new|
|00001670| 6c 69 6e 65 2e 22 5d 29 | 0a 28 66 73 65 74 20 27 |line."])|.(fset '|
|00001680| 6d 70 75 7a 2d 67 65 74 | 2d 62 75 66 66 65 72 20 |mpuz-get|-buffer |
|00001690| 23 5b 6e 69 6c 20 22 c0 | c1 21 87 22 20 5b 67 65 |#[nil ".|.!." [ge|
|000016a0| 74 2d 62 75 66 66 65 72 | 20 22 2a 4d 75 6c 74 20 |t-buffer| "*Mult |
|000016b0| 50 75 7a 7a 6c 65 2a 22 | 5d 20 32 20 22 5c 0a 47 |Puzzle*"|] 2 "\.G|
|000016c0| 65 74 20 74 68 65 20 70 | 75 7a 7a 6c 65 20 62 75 |et the p|uzzle bu|
|000016d0| 66 66 65 72 20 69 66 20 | 69 74 20 65 78 69 73 74 |ffer if |it exist|
|000016e0| 73 2e 22 5d 29 0a 28 66 | 73 65 74 20 27 6d 70 75 |s."]).(f|set 'mpu|
|000016f0| 7a 2d 73 77 69 74 63 68 | 2d 74 6f 2d 77 69 6e 64 |z-switch|-to-wind|
|00001700| 6f 77 20 23 5b 6e 69 6c | 20 22 c0 20 89 19 ac 83 |ow #[nil| ". ....|
|00001710| c2 20 11 c3 09 21 88 0c | ac 83 c5 20 88 c6 20 29 |. ...!..|... .. )|
|00001720| 87 22 20 5b 6d 70 75 7a | 2d 67 65 74 2d 62 75 66 |." [mpuz|-get-buf|
|00001730| 66 65 72 20 62 75 66 66 | 20 6d 70 75 7a 2d 63 72 |fer buff| mpuz-cr|
|00001740| 65 61 74 65 2d 62 75 66 | 66 65 72 20 73 77 69 74 |eate-buf|fer swit|
|00001750| 63 68 2d 74 6f 2d 62 75 | 66 66 65 72 20 62 75 66 |ch-to-bu|ffer buf|
|00001760| 66 65 72 2d 72 65 61 64 | 2d 6f 6e 6c 79 20 74 6f |fer-read|-only to|
|00001770| 67 67 6c 65 2d 72 65 61 | 64 2d 6f 6e 6c 79 20 6d |ggle-rea|d-only m|
|00001780| 70 75 7a 2d 6d 6f 64 65 | 5d 20 33 20 22 5c 0a 46 |puz-mode|] 3 "\.F|
|00001790| 69 6e 64 20 6f 72 20 63 | 72 65 61 74 65 20 74 68 |ind or c|reate th|
|000017a0| 65 20 4d 75 6c 74 2d 50 | 75 7a 7a 6c 65 20 62 75 |e Mult-P|uzzle bu|
|000017b0| 66 66 65 72 2c 20 61 6e | 64 20 64 69 73 70 6c 61 |ffer, an|d displa|
|000017c0| 79 20 69 74 2e 22 5d 29 | 0a 28 66 73 65 74 20 27 |y it."])|.(fset '|
|000017d0| 6d 70 75 7a 2d 61 62 6f | 72 74 2d 67 61 6d 65 20 |mpuz-abo|rt-game |
|000017e0| 23 5b 6e 69 6c 20 22 c0 | c1 21 88 c2 13 c4 15 c6 |#[nil ".|.!......|
|000017f0| 0e 07 c2 5c 22 88 c8 20 | 89 1e 09 ad 84 ca 0e 09 |...\".. |........|
|00001800| 21 29 87 22 20 5b 6d 65 | 73 73 61 67 65 20 22 4d |!)." [me|ssage "M|
|00001810| 75 6c 74 20 50 75 7a 7a | 6c 65 20 61 62 6f 72 74 |ult Puzz|le abort|
|00001820| 65 64 2e 22 20 6e 69 6c | 20 6d 70 75 7a 2d 69 6e |ed." nil| mpuz-in|
|00001830| 2d 70 72 6f 67 72 65 73 | 73 20 30 20 6d 70 75 7a |-progres|s 0 mpuz|
|00001840| 2d 6e 62 2d 65 72 72 6f | 72 73 20 66 69 6c 6c 61 |-nb-erro|rs filla|
|00001850| 72 72 61 79 20 6d 70 75 | 7a 2d 62 6f 61 72 64 20 |rray mpu|z-board |
|00001860| 6d 70 75 7a 2d 67 65 74 | 2d 62 75 66 66 65 72 20 |mpuz-get|-buffer |
|00001870| 62 75 66 66 20 6b 69 6c | 6c 2d 62 75 66 66 65 72 |buff kil|l-buffer|
|00001880| 5d 20 34 20 22 5c 0a 41 | 62 6f 72 74 20 61 6e 79 |] 4 "\.A|bort any|
|00001890| 20 70 75 7a 7a 6c 65 20 | 69 6e 20 70 72 6f 67 72 | puzzle |in progr|
|000018a0| 65 73 73 2e 22 5d 29 0a | 28 66 73 65 74 20 27 6d |ess."]).|(fset 'm|
|000018b0| 70 75 7a 2d 73 74 61 72 | 74 2d 6e 65 77 2d 67 61 |puz-star|t-new-ga|
|000018c0| 6d 65 20 23 5b 6e 69 6c | 20 22 c0 c1 21 88 c2 13 |me #[nil| "..!...|
|000018d0| c4 15 c6 0e 07 c8 5c 22 | 88 c9 20 88 ca 20 88 cb |......\"|.. .. ..|
|000018e0| 20 88 cc 20 88 cd 20 87 | 22 20 5b 6d 65 73 73 61 | .. .. .|" [messa|
|000018f0| 67 65 20 22 48 65 72 65 | 20 77 65 20 67 6f 2e 2e |ge "Here| we go..|
|00001900| 2e 22 20 30 20 6d 70 75 | 7a 2d 6e 62 2d 65 72 72 |." 0 mpu|z-nb-err|
|00001910| 6f 72 73 20 74 20 6d 70 | 75 7a 2d 69 6e 2d 70 72 |ors t mp|uz-in-pr|
|00001920| 6f 67 72 65 73 73 20 66 | 69 6c 6c 61 72 72 61 79 |ogress f|illarray|
|00001930| 20 6d 70 75 7a 2d 66 6f | 75 6e 64 2d 64 69 67 69 | mpuz-fo|und-digi|
|00001940| 74 73 20 6e 69 6c 20 6d | 70 75 7a 2d 72 61 6e 64 |ts nil m|puz-rand|
|00001950| 6f 6d 2d 70 75 7a 7a 6c | 65 20 6d 70 75 7a 2d 73 |om-puzzl|e mpuz-s|
|00001960| 77 69 74 63 68 2d 74 6f | 2d 77 69 6e 64 6f 77 20 |witch-to|-window |
|00001970| 6d 70 75 7a 2d 70 61 69 | 6e 74 2d 62 6f 61 72 64 |mpuz-pai|nt-board|
|00001980| 20 6d 70 75 7a 2d 70 61 | 69 6e 74 2d 65 72 72 6f | mpuz-pa|int-erro|
|00001990| 72 73 20 6d 70 75 7a 2d | 61 73 6b 2d 66 6f 72 2d |rs mpuz-|ask-for-|
|000019a0| 74 72 79 5d 20 33 20 22 | 5c 0a 53 74 61 72 74 20 |try] 3 "|\.Start |
|000019b0| 61 20 6e 65 77 20 70 75 | 7a 7a 6c 65 2e 22 5d 29 |a new pu|zzle."])|
|000019c0| 0a 28 66 73 65 74 20 27 | 6d 70 75 7a 2d 6f 66 66 |.(fset '|mpuz-off|
|000019d0| 65 72 2d 6e 65 77 2d 67 | 61 6d 65 20 23 5b 6e 69 |er-new-g|ame #[ni|
|000019e0| 6c 20 22 c0 c1 21 ab 83 | c2 20 87 c3 c4 21 87 22 |l "..!..|. ...!."|
|000019f0| 20 5b 79 2d 6f 72 2d 6e | 2d 70 20 22 53 74 61 72 | [y-or-n|-p "Star|
|00001a00| 74 20 61 20 6e 65 77 20 | 67 61 6d 65 20 22 20 6d |t a new |game " m|
|00001a10| 70 75 7a 2d 73 74 61 72 | 74 2d 6e 65 77 2d 67 61 |puz-star|t-new-ga|
|00001a20| 6d 65 20 6d 65 73 73 61 | 67 65 20 22 4f 4b 2e 20 |me messa|ge "OK. |
|00001a30| 49 20 77 6f 6e 27 74 2e | 22 5d 20 32 20 22 5c 0a |I won't.|"] 2 "\.|
|00001a40| 41 73 6b 20 69 66 20 75 | 73 65 72 20 77 61 6e 74 |Ask if u|ser want|
|00001a50| 73 20 74 6f 20 73 74 61 | 72 74 20 61 20 6e 65 77 |s to sta|rt a new|
|00001a60| 20 70 75 7a 7a 6c 65 2e | 22 5d 29 0a 28 66 73 65 | puzzle.|"]).(fse|
|00001a70| 74 20 27 6d 70 75 7a 20 | 23 5b 6e 69 6c 20 22 c0 |t 'mpuz |#[nil ".|
|00001a80| 20 88 09 ab 83 c2 20 87 | c3 20 87 22 20 5b 6d 70 | ..... .|. ." [mp|
|00001a90| 75 7a 2d 73 77 69 74 63 | 68 2d 74 6f 2d 77 69 6e |uz-switc|h-to-win|
|00001aa0| 64 6f 77 20 6d 70 75 7a | 2d 69 6e 2d 70 72 6f 67 |dow mpuz|-in-prog|
|00001ab0| 72 65 73 73 20 6d 70 75 | 7a 2d 6f 66 66 65 72 2d |ress mpu|z-offer-|
|00001ac0| 61 62 6f 72 74 20 6d 70 | 75 7a 2d 73 74 61 72 74 |abort mp|uz-start|
|00001ad0| 2d 6e 65 77 2d 67 61 6d | 65 5d 20 31 20 22 5c 0a |-new-gam|e] 1 "\.|
|00001ae0| 4d 75 6c 74 69 70 6c 69 | 63 61 74 69 6f 6e 20 70 |Multipli|cation p|
|00001af0| 75 7a 7a 6c 65 20 77 69 | 74 68 20 47 4e 55 20 45 |uzzle wi|th GNU E|
|00001b00| 6d 61 63 73 2e 22 20 6e | 69 6c 5d 29 0a 28 66 73 |macs." n|il]).(fs|
|00001b10| 65 74 20 27 6d 70 75 7a | 2d 6f 66 66 65 72 2d 61 |et 'mpuz|-offer-a|
|00001b20| 62 6f 72 74 20 23 5b 6e | 69 6c 20 22 c0 c1 21 ab |bort #[n|il "..!.|
|00001b30| 83 c2 20 87 c3 20 87 22 | 20 5b 79 2d 6f 72 2d 6e |.. .. ."| [y-or-n|
|00001b40| 2d 70 20 22 41 62 6f 72 | 74 20 67 61 6d 65 20 22 |-p "Abor|t game "|
|00001b50| 20 6d 70 75 7a 2d 61 62 | 6f 72 74 2d 67 61 6d 65 | mpuz-ab|ort-game|
|00001b60| 20 6d 70 75 7a 2d 61 73 | 6b 2d 66 6f 72 2d 74 72 | mpuz-as|k-for-tr|
|00001b70| 79 5d 20 32 20 22 5c 0a | 41 73 6b 20 69 66 20 75 |y] 2 "\.|Ask if u|
|00001b80| 73 65 72 20 77 61 6e 74 | 73 20 74 6f 20 61 62 6f |ser want|s to abo|
|00001b90| 72 74 20 63 75 72 72 65 | 6e 74 20 70 75 7a 7a 6c |rt curre|nt puzzl|
|00001ba0| 65 2e 22 20 6e 69 6c 5d | 29 0a 28 66 73 65 74 20 |e." nil]|).(fset |
|00001bb0| 27 6d 70 75 7a 2d 61 73 | 6b 2d 66 6f 72 2d 74 72 |'mpuz-as|k-for-tr|
|00001bc0| 79 20 23 5b 6e 69 6c 20 | 22 c0 c1 21 87 22 20 5b |y #[nil |"..!." [|
|00001bd0| 6d 65 73 73 61 67 65 20 | 22 59 6f 75 72 20 74 72 |message |"Your tr|
|00001be0| 79 20 3f 22 5d 20 32 20 | 22 5c 0a 41 73 6b 20 66 |y ?"] 2 |"\.Ask f|
|00001bf0| 6f 72 20 75 73 65 72 20 | 70 72 6f 70 6f 73 61 6c |or user |proposal|
|00001c00| 20 69 6e 20 70 75 7a 7a | 6c 65 2e 22 5d 29 0a 28 | in puzz|le."]).(|
|00001c10| 66 73 65 74 20 27 6d 70 | 75 7a 2d 74 72 79 2d 6c |fset 'mp|uz-try-l|
|00001c20| 65 74 74 65 72 20 23 5b | 6e 69 6c 20 22 08 ab d6 |etter #[|nil "...|
|00001c30| c1 89 89 89 1a 1b 1c 1d | 0e 06 96 15 0e 07 0d c8 |........|........|
|00001c40| 5a 48 14 0e 09 0c 48 ab | 86 c2 ca 0d 5c 22 aa b5 |ZH....H.|....\"..|
|00001c50| 0e 0b 0c 48 ac 86 c2 cc | 0d 5c 22 aa a9 c2 cd 0d |...H....|.\".....|
|00001c60| 5c 22 88 ce 20 89 13 cf | 3d ab 83 ce 20 13 c2 d0 |\".. ...|=... ...|
|00001c70| 0d 0b 23 88 0b d1 56 ac | 85 0b d2 57 ab 85 d3 d4 |..#...V.|...W....|
|00001c80| 21 aa 84 d5 0d 0b 5c 22 | 2c 87 d6 20 87 22 20 5b |!.....\"|,.. ." [|
|00001c90| 6d 70 75 7a 2d 69 6e 2d | 70 72 6f 67 72 65 73 73 |mpuz-in-|progress|
|00001ca0| 20 6e 69 6c 20 6d 65 73 | 73 61 67 65 20 64 69 67 | nil mes|sage dig|
|00001cb0| 69 74 2d 63 68 61 72 20 | 64 69 67 69 74 20 6c 65 |it-char |digit le|
|00001cc0| 74 74 65 72 2d 63 68 61 | 72 20 6c 61 73 74 2d 63 |tter-cha|r last-c|
|00001cd0| 6f 6d 6d 61 6e 64 2d 63 | 68 61 72 20 6d 70 75 7a |ommand-c|har mpuz|
|00001ce0| 2d 6c 65 74 74 65 72 2d | 74 6f 2d 64 69 67 69 74 |-letter-|to-digit|
|00001cf0| 20 36 35 20 6d 70 75 7a | 2d 66 6f 75 6e 64 2d 64 | 65 mpuz|-found-d|
|00001d00| 69 67 69 74 73 20 22 25 | 63 20 61 6c 72 65 61 64 |igits "%|c alread|
|00001d10| 79 20 73 6f 6c 76 65 64 | 2e 22 20 6d 70 75 7a 2d |y solved|." mpuz-|
|00001d20| 62 6f 61 72 64 20 22 25 | 63 20 64 6f 65 73 20 6e |board "%|c does n|
|00001d30| 6f 74 20 61 70 70 65 61 | 72 2e 22 20 22 25 63 20 |ot appea|r." "%c |
|00001d40| 3d 20 22 20 72 65 61 64 | 2d 63 68 61 72 20 36 31 |= " read|-char 61|
|00001d50| 20 22 25 63 20 3d 20 25 | 63 22 20 35 37 20 34 38 | "%c = %|c" 57 48|
|00001d60| 20 64 69 6e 67 20 74 20 | 6d 70 75 7a 2d 74 72 79 | ding t |mpuz-try|
|00001d70| 2d 70 72 6f 70 6f 73 61 | 6c 20 6d 70 75 7a 2d 6f |-proposa|l mpuz-o|
|00001d80| 66 66 65 72 2d 6e 65 77 | 2d 67 61 6d 65 5d 20 35 |ffer-new|-game] 5|
|00001d90| 20 22 5c 0a 50 72 6f 70 | 6f 73 65 20 61 20 64 69 | "\.Prop|ose a di|
|00001da0| 67 69 74 20 66 6f 72 20 | 61 20 6c 65 74 74 65 72 |git for |a letter|
|00001db0| 20 69 6e 20 70 75 7a 7a | 6c 65 2e 22 20 6e 69 6c | in puzz|le." nil|
|00001dc0| 5d 29 0a 28 66 73 65 74 | 20 27 6d 70 75 7a 2d 74 |]).(fset| 'mpuz-t|
|00001dd0| 72 79 2d 70 72 6f 70 6f | 73 61 6c 20 23 5b 28 6c |ry-propo|sal #[(l|
|00001de0| 65 74 74 65 72 2d 63 68 | 61 72 20 64 69 67 69 74 |etter-ch|ar digit|
|00001df0| 2d 63 68 61 72 29 20 22 | 08 c1 5a 1a 0b c4 5a 1d |-char) "|..Z...Z.|
|00001e00| 0e 06 5c 6e 48 1e 07 0e | 08 0e 07 48 ab 85 c9 ca |..\nH...|...H....|
|00001e10| 21 aa a4 0d 0e 07 55 ab | 8e c9 cb 08 0b 23 88 cc |!.....U.|.....#..|
|00001e20| 20 88 cd 0d 21 aa 90 c9 | ce 08 0b 23 88 cc 20 88 | ...!...|...#.. .|
|00001e30| 0e 0f 54 16 0f d0 20 2b | 87 22 20 5b 6c 65 74 74 |..T... +|." [lett|
|00001e40| 65 72 2d 63 68 61 72 20 | 36 35 20 6c 65 74 74 65 |er-char |65 lette|
|00001e50| 72 20 64 69 67 69 74 2d | 63 68 61 72 20 34 38 20 |r digit-|char 48 |
|00001e60| 64 69 67 69 74 20 6d 70 | 75 7a 2d 6c 65 74 74 65 |digit mp|uz-lette|
|00001e70| 72 2d 74 6f 2d 64 69 67 | 69 74 20 63 6f 72 72 65 |r-to-dig|it corre|
|00001e80| 63 74 2d 64 69 67 69 74 | 20 6d 70 75 7a 2d 66 6f |ct-digit| mpuz-fo|
|00001e90| 75 6e 64 2d 64 69 67 69 | 74 73 20 6d 65 73 73 61 |und-digi|ts messa|
|00001ea0| 67 65 20 22 25 63 20 68 | 61 73 20 61 6c 72 65 61 |ge "%c h|as alrea|
|00001eb0| 64 79 20 62 65 65 6e 20 | 66 6f 75 6e 64 2e 22 20 |dy been |found." |
|00001ec0| 22 25 63 20 3d 20 25 63 | 20 63 6f 72 72 65 63 74 |"%c = %c| correct|
|00001ed0| 20 21 22 20 6d 70 75 7a | 2d 64 69 6e 67 20 6d 70 | !" mpuz|-ding mp|
|00001ee0| 75 7a 2d 63 6f 72 72 65 | 63 74 2d 67 75 65 73 73 |uz-corre|ct-guess|
|00001ef0| 20 22 25 63 20 3d 20 25 | 63 20 69 6e 63 6f 72 72 | "%c = %|c incorr|
|00001f00| 65 63 74 20 21 22 20 6d | 70 75 7a 2d 6e 62 2d 65 |ect !" m|puz-nb-e|
|00001f10| 72 72 6f 72 73 20 6d 70 | 75 7a 2d 70 61 69 6e 74 |rrors mp|uz-paint|
|00001f20| 2d 65 72 72 6f 72 73 5d | 20 34 20 22 5c 0a 50 72 |-errors]| 4 "\.Pr|
|00001f30| 6f 70 6f 73 65 20 4c 45 | 54 54 45 52 2d 43 48 41 |opose LE|TTER-CHA|
|00001f40| 52 20 61 73 20 63 6f 64 | 65 20 66 6f 72 20 44 49 |R as cod|e for DI|
|00001f50| 47 49 54 2d 43 48 41 52 | 2e 22 5d 29 0a 28 66 73 |GIT-CHAR|."]).(fs|
|00001f60| 65 74 20 27 6d 70 75 7a | 2d 63 6f 72 72 65 63 74 |et 'mpuz|-correct|
|00001f70| 2d 67 75 65 73 73 20 23 | 5b 28 64 69 67 69 74 29 |-guess #|[(digit)|
|00001f80| 20 22 08 09 c2 49 88 c3 | 09 21 88 c4 20 ad 82 c5 | "...I..|.!.. ...|
|00001f90| 20 87 22 20 5b 6d 70 75 | 7a 2d 66 6f 75 6e 64 2d | ." [mpu|z-found-|
|00001fa0| 64 69 67 69 74 73 20 64 | 69 67 69 74 20 74 20 6d |digits d|igit t m|
|00001fb0| 70 75 7a 2d 70 61 69 6e | 74 2d 64 69 67 69 74 20 |puz-pain|t-digit |
|00001fc0| 6d 70 75 7a 2d 63 68 65 | 63 6b 2d 61 6c 6c 2d 73 |mpuz-che|ck-all-s|
|00001fd0| 6f 6c 76 65 64 20 6d 70 | 75 7a 2d 63 6c 6f 73 65 |olved mp|uz-close|
|00001fe0| 2d 67 61 6d 65 5d 20 33 | 20 22 5c 0a 48 61 6e 64 |-game] 3| "\.Hand|
|00001ff0| 6c 65 20 63 6f 72 72 65 | 63 74 20 67 75 65 73 73 |le corre|ct guess|
|00002000| 69 6e 67 20 6f 66 20 44 | 49 47 49 54 2e 22 5d 29 |ing of D|IGIT."])|
|00002010| 0a 28 66 73 65 74 20 27 | 6d 70 75 7a 2d 63 6c 6f |.(fset '|mpuz-clo|
|00002020| 73 65 2d 67 61 6d 65 20 | 23 5b 6e 69 6c 20 22 c0 |se-game |#[nil ".|
|00002030| 11 5c 6e 0b 5c 5c 12 0c | 54 14 c5 20 88 c6 20 1e |.\n.\\..|T.. .. .|
|00002040| 07 c7 0e 07 21 88 c8 c9 | 21 88 ca 0e 07 cb 50 21 |....!...|!.....P!|
|00002050| ab 84 cc 20 aa 83 c7 cd | 21 29 87 22 20 5b 6e 69 |... ....|!)." [ni|
|00002060| 6c 20 6d 70 75 7a 2d 69 | 6e 2d 70 72 6f 67 72 65 |l mpuz-i|n-progre|
|00002070| 73 73 20 6d 70 75 7a 2d | 6e 62 2d 63 75 6d 75 6c |ss mpuz-|nb-cumul|
|00002080| 61 74 65 64 2d 65 72 72 | 6f 72 73 20 6d 70 75 7a |ated-err|ors mpuz|
|00002090| 2d 6e 62 2d 65 72 72 6f | 72 73 20 6d 70 75 7a 2d |-nb-erro|rs mpuz-|
|000020a0| 6e 62 2d 63 6f 6d 70 6c | 65 74 65 64 2d 67 61 6d |nb-compl|eted-gam|
|000020b0| 65 73 20 6d 70 75 7a 2d | 70 61 69 6e 74 2d 73 74 |es mpuz-|paint-st|
|000020c0| 61 74 69 73 74 69 63 73 | 20 6d 70 75 7a 2d 63 6f |atistics| mpuz-co|
|000020d0| 6e 67 72 61 74 75 6c 61 | 74 65 20 6d 65 73 73 61 |ngratula|te messa|
|000020e0| 67 65 20 73 69 74 2d 66 | 6f 72 20 34 20 79 2d 6f |ge sit-f|or 4 y-o|
|000020f0| 72 2d 6e 2d 70 20 22 20 | 20 53 74 61 72 74 20 61 |r-n-p " | Start a|
|00002100| 20 6e 65 77 20 67 61 6d | 65 20 22 20 6d 70 75 7a | new gam|e " mpuz|
|00002110| 2d 73 74 61 72 74 2d 6e | 65 77 2d 67 61 6d 65 20 |-start-n|ew-game |
|00002120| 22 47 6f 6f 64 20 42 79 | 65 20 21 22 5d 20 33 20 |"Good By|e !"] 3 |
|00002130| 22 5c 0a 48 6f 75 73 65 | 63 6c 65 61 6e 69 6e 67 |"\.House|cleaning|
|00002140| 20 77 68 65 6e 20 70 75 | 7a 7a 6c 65 20 68 61 73 | when pu|zzle has|
|00002150| 20 62 65 65 6e 20 73 6f | 6c 76 65 64 2e 22 5d 29 | been so|lved."])|
|00002160| 0a 28 66 73 65 74 20 27 | 6d 70 75 7a 2d 63 6f 6e |.(fset '|mpuz-con|
|00002170| 67 72 61 74 75 6c 61 74 | 65 20 23 5b 6e 69 6c 20 |gratulat|e #[nil |
|00002180| 22 c0 c1 5c 6e 89 c3 55 | ab 83 c4 aa c0 5c 6e c5 |"..\n..U|.....\n.|
|00002190| 55 ab 83 c6 aa b8 5c 6e | c7 55 ab 83 c8 aa b0 5c |U.....\n|.U.....\|
|000021a0| 6e c9 55 ab 83 ca aa a8 | 5c 6e cb 55 ab 83 cc aa |n.U.....|\n.U....|
|000021b0| a0 5c 6e cd 59 ab 88 5c | 6e ce 57 ab 83 cf aa 93 |.\n.Y..\|n.W.....|
|000021c0| 5c 6e ce 59 ab 88 5c 6e | d0 57 ab 83 d1 aa 86 5c |\n.Y..\n|.W.....\|
|000021d0| 6e d0 59 ad 81 d2 23 87 | 22 20 5b 66 6f 72 6d 61 |n.Y...#.|" [forma|
|000021e0| 74 20 22 50 75 7a 7a 6c | 65 20 73 6f 6c 76 65 64 |t "Puzzl|e solved|
|000021f0| 20 77 69 74 68 20 25 64 | 20 65 72 72 6f 72 73 2e | with %d| errors.|
|00002200| 20 25 73 22 20 6d 70 75 | 7a 2d 6e 62 2d 65 72 72 | %s" mpu|z-nb-err|
|00002210| 6f 72 73 20 30 20 22 54 | 68 61 74 27 73 20 70 65 |ors 0 "T|hat's pe|
|00002220| 72 66 65 63 74 20 21 22 | 20 31 20 22 54 68 61 74 |rfect !"| 1 "That|
|00002230| 27 73 20 76 65 72 79 20 | 67 6f 6f 64 20 21 22 20 |'s very |good !" |
|00002240| 32 20 22 54 68 61 74 27 | 73 20 67 6f 6f 64 2e 22 |2 "That'|s good."|
|00002250| 20 33 20 22 54 68 61 74 | 27 73 20 6e 6f 74 20 62 | 3 "That|'s not b|
|00002260| 61 64 2e 22 20 34 20 22 | 54 68 61 74 27 73 20 6e |ad." 4 "|That's n|
|00002270| 6f 74 20 74 6f 6f 20 62 | 61 64 2e 2e 2e 22 20 35 |ot too b|ad..." 5|
|00002280| 20 31 30 20 22 54 68 61 | 74 27 73 20 62 61 64 20 | 10 "Tha|t's bad |
|00002290| 21 22 20 31 35 20 22 54 | 68 61 74 27 73 20 61 77 |!" 15 "T|hat's aw|
|000022a0| 66 75 6c 2e 22 20 22 54 | 68 61 74 27 73 20 6e 6f |ful." "T|hat's no|
|000022b0| 74 20 73 65 72 69 6f 75 | 73 2e 22 5d 20 35 20 22 |t seriou|s."] 5 "|
|000022c0| 5c 0a 42 75 69 6c 64 20 | 61 20 63 6f 6e 67 72 61 |\.Build |a congra|
|000022d0| 74 75 6c 61 74 69 6f 6e | 20 6d 65 73 73 61 67 65 |tulation| message|
|000022e0| 20 77 68 65 6e 20 70 75 | 7a 7a 6c 65 20 69 73 20 | when pu|zzle is |
|000022f0| 73 6f 6c 76 65 64 2e 22 | 5d 29 0a 28 66 73 65 74 |solved."|]).(fset|
|00002300| 20 27 6d 70 75 7a 2d 73 | 68 6f 77 2d 73 6f 6c 75 | 'mpuz-s|how-solu|
|00002310| 74 69 6f 6e 20 23 5b 6e | 69 6c 20 22 c0 20 88 c1 |tion #[n|il ". ..|
|00002320| 89 1a 1b c4 13 c5 0b 54 | 89 13 56 ab 8c 0e 06 0b |.......T|..V.....|
|00002330| 48 ac 72 0b 5c 6e 42 12 | aa 6c c7 c8 5c 6e 5c 22 |H.r.\nB.|.l..\n\"|
|00002340| 2a 87 22 20 5b 6d 70 75 | 7a 2d 73 77 69 74 63 68 |*." [mpu|z-switch|
|00002350| 2d 74 6f 2d 77 69 6e 64 | 6f 77 20 6e 69 6c 20 6c |-to-wind|ow nil l|
|00002360| 69 73 74 20 64 69 67 69 | 74 20 2d 31 20 31 30 20 |ist digi|t -1 10 |
|00002370| 6d 70 75 7a 2d 66 6f 75 | 6e 64 2d 64 69 67 69 74 |mpuz-fou|nd-digit|
|00002380| 73 20 6d 61 70 63 61 72 | 20 6d 70 75 7a 2d 63 6f |s mapcar| mpuz-co|
|00002390| 72 72 65 63 74 2d 67 75 | 65 73 73 5d 20 33 20 22 |rrect-gu|ess] 3 "|
|000023a0| 5c 0a 44 69 73 70 6c 61 | 79 20 73 6f 6c 75 74 69 |\.Displa|y soluti|
|000023b0| 6f 6e 20 66 6f 72 20 64 | 65 62 75 67 67 69 6e 67 |on for d|ebugging|
|000023c0| 20 70 75 72 70 6f 73 65 | 73 2e 22 20 6e 69 6c 5d | purpose|s." nil]|
|000023d0| 29 0a | |). | |
+--------+-------------------------+-------------------------+--------+--------+